home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- import warnings
- import os
- import unittest
- from test import test_support
-
- class WarningMessage:
- '''Holds results of latest showwarning() call'''
- pass
-
-
- def showwarning(message, category, filename, lineno, file = None):
- msg.message = str(message)
- msg.category = category.__name__
- msg.filename = os.path.basename(filename)
- msg.lineno = lineno
-
-
- class TestModule(unittest.TestCase):
-
- def setUp(self):
- global msg
- msg = WarningMessage()
- self._filters = warnings.filters[:]
- self._showwarning = warnings.showwarning
- warnings.showwarning = showwarning
- self.ignored = _[1]
-
-
- def tearDown(self):
- warnings.filters = self._filters[:]
- warnings.showwarning = self._showwarning
-
-
- def test_warn_default_category(self):
- for i in range(4):
- text = 'multi %d' % i
- warnings.warn(text)
- self.assertEqual(msg.message, text)
- self.assertEqual(msg.category, 'UserWarning')
-
-
-
- def test_warn_specific_category(self):
- text = 'None'
- for category in [
- DeprecationWarning,
- FutureWarning,
- OverflowWarning,
- PendingDeprecationWarning,
- RuntimeWarning,
- SyntaxWarning,
- UserWarning,
- Warning]:
- if category.__name__ in self.ignored:
- text = 'filtered out' + category.__name__
- warnings.warn(text, category)
- self.assertNotEqual(msg.message, text)
- continue
- text = 'unfiltered %s' % category.__name__
- warnings.warn(text, category)
- self.assertEqual(msg.message, text)
- self.assertEqual(msg.category, category.__name__)
-
-
-
- def test_filtering(self):
- warnings.filterwarnings('error', '', Warning, '', 0)
- self.assertRaises(UserWarning, warnings.warn, 'convert to error')
- warnings.resetwarnings()
- text = 'handle normally'
- warnings.warn(text)
- self.assertEqual(msg.message, text)
- self.assertEqual(msg.category, 'UserWarning')
- warnings.filterwarnings('ignore', '', Warning, '', 0)
- text = 'filtered out'
- warnings.warn(text)
- self.assertNotEqual(msg.message, text)
- warnings.resetwarnings()
- warnings.filterwarnings('error', 'hex*', Warning, '', 0)
- self.assertRaises(UserWarning, warnings.warn, 'hex/oct')
- text = 'nonmatching text'
- warnings.warn(text)
- self.assertEqual(msg.message, text)
- self.assertEqual(msg.category, 'UserWarning')
-
-
-
- def test_main(verbose = None):
- test_support.run_unittest(TestModule)
-
- if __name__ == '__main__':
- test_main(verbose = True)
-
-